package com.unju.hibernate.patronDAO.imp;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import com.unju.hibernate.HibernateBase;
import com.unju.hibernate.entidades.Tiporecurso;
import com.unju.hibernate.patronDAO.PatronDAO;

public class TipoRecursoDAOImp extends HibernateBase implements PatronDAO<Tiporecurso>{

	@Override
	public List<Tiporecurso> getAll() {
		getSession().beginTransaction();
		List<Tiporecurso> lista = getSession().createCriteria(
				Tiporecurso.class).list();
		getSession().getTransaction().commit();
		getSession().close();
		return lista;
	}

	@Override
	public Tiporecurso get(Integer idDato) {
		getSession().beginTransaction();
		Tiporecurso tipoRecurso = (Tiporecurso) getSession().get(
				Tiporecurso.class, idDato);
		getSession().getTransaction().commit();
		getSession().close();
		return tipoRecurso;
	}

	@Override
	public void insert(Tiporecurso unDato) {
		getSession().beginTransaction();
		getSession().save(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}

	@Override
	public void update(Tiporecurso unDato) {
		getSession().beginTransaction();
		getSession().update(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}

	@Override
	public void delete(Tiporecurso unDato) {
		getSession().beginTransaction();
		getSession().delete(unDato);
		getSession().getTransaction().commit();
		getSession().close();
	}
	
	public Tiporecurso getTipoRecurso(String nombre) {
		Tiporecurso tipoRecurso= null;
		getSession().beginTransaction();
		Criteria criteria = getSession().createCriteria(Tiporecurso.class);
		criteria.add(Restrictions.eq("nombre", nombre));
		if (criteria.list().size() > 0)
			tipoRecurso = (Tiporecurso) criteria.list().get(0);
		getSession().close();
		return tipoRecurso;
	}
}
